<?php


include("Coneccion.php");
$link=conectarse();
$solicitud=$_GET["solicitud"];
$result=mysql_query("SELECT *, CASE
			WHEN (MONTH(fechanacimiento) < MONTH(CURRENT_DATE)) THEN YEAR(CURRENT_DATE) - YEAR(fechanacimiento)
    		WHEN (MONTH(fechanacimiento) = MONTH(CURRENT_DATE)) AND (DAY(fechanacimiento) <= DAY(CURRENT_DATE)) THEN 				            YEAR(CURRENT_DATE) - YEAR(fechanacimiento)
            ELSE (YEAR(CURRENT_DATE) - YEAR(fechanacimiento)) - 1
END AS edad

FROM habitante a, solicitud b WHERE a.codhab = b.codhab AND b.solicitud_id = $solicitud;",$link);
$row = mysql_fetch_array($result);
// Lee la plantilla
$tipoSolicitud=$row ["tiposolicitud_id"];
$nombrePlantilla = $tipoSolicitud.'.rtf';
$plantilla = file_get_contents($nombrePlantilla);

// Agregamos los escapes necesarios
$plantilla = addslashes($plantilla);
$plantilla = str_replace("\\'f1","'f1",$plantilla); // Letra ñ 
$plantilla = str_replace("\\'e1","'e1",$plantilla); // Letra á 
$plantilla = str_replace("\\'e9","'e9",$plantilla); // Letra é 
$plantilla = str_replace("\\'ed","'ed",$plantilla); // Letra í 
$plantilla = str_replace("\\'f3","'f3",$plantilla); // Letra ó 
$plantilla = str_replace("\\'fa","'fa",$plantilla); // Letra ú 
$plantilla = str_replace("\\'80","'80",$plantilla); // Letra € Euro

// Datos de la plantilla
$nombre = $row ["nombre"];
$apellido = $row ["apellido"];
$cedula = $row ["ci"];
$bloque = $row ["bloque"];
$letra = $row ["letra"];
$piso = $row ["piso"];
$apto = $row ["apartamento"];

$edad = $row ["edad"];
$fechanac = $row ["fechaNacimiento"];
$dia = substr($fechanac, 8, 2) ;
$mes = substr($fechanac, 5, 2);
$anio = substr($fechanac, 0, 4);
$fechanac = $dia.'-'.$mes.'-'.$anio;
$aniohab = $row ["tiempo_hab"];
$aniomes = $row ["aniomes"];
if ($aniomes=='A')
    $aniomes = utf8_decode("año(s)");
else
    $aniomes = "mes(es)";
$fechaactual=date("d-m-Y");
$fadia = substr($fechaactual, 0, 2) ;
$letradia = strtolower(numtoletras($fadia,12));
$fames = substr($fechaactual, 3, 2);
switch ($fames) {
    case 1:
        $letrames = "enero";
        break;
    case 2:
        $letrames = "febrero";
        break;
    case 3:
        $letrames = "marzo";
        break;
	case 4:
        $letrames = "abril";
        break;
    case 5:
        $letrames = "mayo";
        break;
    case 6:
        $letrames = "junio";
        break;
	case 7:
        $letrames = "julio";
        break;
    case 8:
        $letrames = "agosto";
        break;
    case 9:
        $letrames = "septiembre";
        break;
	case 10:
        $letrames = "octubre";
        break;
    case 11:
        $letrames = "noviembre";
        break;
    case 12:
        $letrames = "diciembre";
        break;
}
$faanio = substr($fechaactual, 6, 4);
$letraanio = strtolower(numtoletras($faanio,12));
$mayor = "mayor";
$viejo = strtolower(numtoletras($edad,12));

if ($edad<18)
  $mayor="menor";
//$prefijo = "Sr.";
//$curso = '"Programacion Web con PHP"';
//$fecha = date("d-m-Y", time() - 7 * 24 * 60 * 60); // de esta manera el codigo no envejece :P
$plantilla = str_replace("\\'f1","'f1",$plantilla); // Letra ñ 
// Procesa la plantilla
eval( '$rtf = <<<EOF_RTF
' . $plantilla . '
EOF_RTF;
' );

// Guarda el RTF generado
$nombreArchivo = $tipoSolicitud.$tipoSolicitud.'.rtf';
file_put_contents($nombreArchivo,$rtf);




header('Content-Description: File Transfer');
header('Content-Type: application/rtf');
header('Content-Disposition: attachment; filename='.$nombreArchivo);
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: '.filesize($nombreArchivo));
ob_clean();
flush();
echo file_get_contents($nombreArchivo);
exit;

?>

<?php
function numtoletras($xcifra)
{ 
$xarray = array(0 => "Cero",
1 => "UN", "DOS", "TRES", "CUATRO", "CINCO", "SEIS", "SIETE", "OCHO", "NUEVE", 
"DIEZ", "ONCE", "DOCE", "TRECE", "CATORCE", "QUINCE", "DIECISEIS", "DIECISIETE", "DIECIOCHO", "DIECINUEVE", 
"VEINTI", 30 => "TREINTA", 40 => "CUARENTA", 50 => "CINCUENTA", 60 => "SESENTA", 70 => "SETENTA", 80 => "OCHENTA", 90 => "NOVENTA", 
100 => "CIENTO", 200 => "DOSCIENTOS", 300 => "TRESCIENTOS", 400 => "CUATROCIENTOS", 500 => "QUINIENTOS", 600 => "SEISCIENTOS", 700 => "SETECIENTOS", 800 => "OCHOCIENTOS", 900 => "NOVECIENTOS"
);
//
$xcifra = trim($xcifra);
$xlength = strlen($xcifra);
$xpos_punto = strpos($xcifra, ".");
$xaux_int = $xcifra;
$xdecimales = "00";
if (!($xpos_punto === false))
   {
   if ($xpos_punto == 0)
      {
      $xcifra = "0".$xcifra;
      $xpos_punto = strpos($xcifra, ".");
      }
   $xaux_int = substr($xcifra, 0, $xpos_punto); // obtengo el entero de la cifra a covertir
   $xdecimales = substr($xcifra."00", $xpos_punto + 1, 2); // obtengo los valores decimales
   }

$XAUX = str_pad($xaux_int, 18, " ", STR_PAD_LEFT); // ajusto la longitud de la cifra, para que sea divisible por centenas de miles (grupos de 6)
$xcadena = "";
for($xz = 0; $xz < 3; $xz++)
   {
   $xaux = substr($XAUX, $xz * 6, 6);
   $xi = 0; $xlimite = 6; // inicializo el contador de centenas xi y establezco el límite a 6 dígitos en la parte entera
   $xexit = true; // bandera para controlar el ciclo del While 
   while ($xexit)
      {
      if ($xi == $xlimite) // si ya llegó al límite máximo de enteros
         {
         break; // termina el ciclo
         }
   
      $x3digitos = ($xlimite - $xi) * -1; // comienzo con los tres primeros digitos de la cifra, comenzando por la izquierda
      $xaux = substr($xaux, $x3digitos, abs($x3digitos)); // obtengo la centena (los tres dígitos)
      for ($xy = 1; $xy < 4; $xy++) // ciclo para revisar centenas, decenas y unidades, en ese orden
         {
         switch ($xy) 
            {
            case 1: // checa las centenas
               if (substr($xaux, 0, 3) < 100) // si el grupo de tres dígitos es menor a una centena ( < 99) no hace nada y pasa a revisar las decenas
                  {
                  }
               else
                  {
                  $xseek = $xarray[substr($xaux, 0, 3)]; // busco si la centena es número redondo (100, 200, 300, 400, etc..)
                  if ($xseek)
                     {
                     $xsub = subfijo($xaux); // devuelve el subfijo correspondiente (Millón, Millones, Mil o nada)
                     if (substr($xaux, 0, 3) == 100) 
                        $xcadena = " ".$xcadena." CIEN ".$xsub;
                     else
                        $xcadena = " ".$xcadena." ".$xseek." ".$xsub;
                     $xy = 3; // la centena fue redonda, entonces termino el ciclo del for y ya no reviso decenas ni unidades
                     }
                  else // entra aquí si la centena no fue numero redondo (101, 253, 120, 980, etc.)
                     {
                     $xseek = $xarray[substr($xaux, 0, 1) * 100]; // toma el primer caracter de la centena y lo multiplica por cien y lo busca en el arreglo (para que busque 100,200,300, etc)
                     $xcadena = " ".$xcadena." ".$xseek;
                     } // ENDIF ($xseek)
                  } // ENDIF (substr($xaux, 0, 3) < 100)
               break;
            case 2: // checa las decenas (con la misma lógica que las centenas)
               if (substr($xaux, 1, 2) < 10)
                  {
                  }
               else
                  {
                  $xseek = $xarray[substr($xaux, 1, 2)];
                  if ($xseek)
                     {
                     $xsub = subfijo($xaux);
                     if (substr($xaux, 1, 2) == 20)
                        $xcadena = " ".$xcadena." VEINTE ".$xsub;
                     else
                        $xcadena = " ".$xcadena." ".$xseek." ".$xsub;
                     $xy = 3;
                     }
                  else
                     {
                     $xseek = $xarray[substr($xaux, 1, 1) * 10];
                     if (substr($xaux, 1, 1) * 10 == 20)
                        $xcadena = " ".$xcadena." ".$xseek;
                     else  
                        $xcadena = " ".$xcadena." ".$xseek." Y ";
                     } // ENDIF ($xseek)
                  } // ENDIF (substr($xaux, 1, 2) < 10)
               break;
            case 3: // checa las unidades
               if (substr($xaux, 2, 1) < 1) // si la unidad es cero, ya no hace nada
                  {
                  }
               else
                  {
                  $xseek = $xarray[substr($xaux, 2, 1)]; // obtengo directamente el valor de la unidad (del uno al nueve)
                  $xsub = subfijo($xaux);
                  $xcadena = " ".$xcadena." ".$xseek." ".$xsub;
                  } // ENDIF (substr($xaux, 2, 1) < 1)
               break;
            } // END SWITCH
         } // END FOR
         $xi = $xi + 3;
      } // ENDDO

      if (substr(trim($xcadena), -5, 5) == "ILLON") // si la cadena obtenida termina en MILLON o BILLON, entonces le agrega al final la conjuncion DE
         $xcadena.= " DE";
         
      if (substr(trim($xcadena), -7, 7) == "ILLONES") // si la cadena obtenida en MILLONES o BILLONES, entoncea le agrega al final la conjuncion DE
         $xcadena.= " DE";
      
      // ----------- esta línea la puedes cambiar de acuerdo a tus necesidades o a tu país -------
      if (trim($xaux) != "")
         {
         switch ($xz)
            {
            case 0:
               if (trim(substr($XAUX, $xz * 6, 6)) == "1")
                  $xcadena.= "UN BILLON ";
               else
                  $xcadena.= " BILLONES ";
               break;
            case 1:
               if (trim(substr($XAUX, $xz * 6, 6)) == "1")
                  $xcadena.= "UN MILLON ";
               else
                  $xcadena.= " MILLONES ";
               break;
            case 2:
               if ($xcifra < 1 )
                  {
                  $xcadena = "";
                  }
               if ($xcifra >= 1 && $xcifra < 2)
                  {
                  $xcadena = "";
                  }
               if ($xcifra >= 2)
                  {
                  $xcadena.= ""; // 
                  }
               break;
            } // endswitch ($xz)
         } // ENDIF (trim($xaux) != "")
      // ------------------      en este caso, para México se usa esta leyenda     ----------------
      $xcadena = str_replace("VEINTI ", "VEINTI", $xcadena); // quito el espacio para el VEINTI, para que quede: VEINTICUATRO, VEINTIUN, VEINTIDOS, etc
      $xcadena = str_replace("  ", " ", $xcadena); // quito espacios dobles 
      $xcadena = str_replace("UN UN", "UN", $xcadena); // quito la duplicidad
      $xcadena = str_replace("  ", " ", $xcadena); // quito espacios dobles 
      $xcadena = str_replace("BILLON DE MILLONES", "BILLON DE", $xcadena); // corrigo la leyenda
      $xcadena = str_replace("BILLONES DE MILLONES", "BILLONES DE", $xcadena); // corrigo la leyenda
      $xcadena = str_replace("DE UN", "UN", $xcadena); // corrigo la leyenda
   } // ENDFOR ($xz)
   return trim($xcadena);
} // END FUNCTION


function subfijo($xx)
   { // esta función regresa un subfijo para la cifra
   $xx = trim($xx);
   $xstrlen = strlen($xx);
   if ($xstrlen == 1 || $xstrlen == 2 || $xstrlen == 3)
      $xsub = "";
   // 
   if ($xstrlen == 4 || $xstrlen == 5 || $xstrlen == 6)
      $xsub = "MIL";
   //
   return $xsub;
   } // END FUNCTION
?>